home *** CD-ROM | disk | FTP | other *** search
/ Dynamic HTML Construction Kit / Dynamic HTML Construction Kit.iso / earthlink / nscomm / java40.jar / sun / awt / macos / MListPeer.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-11-03  |  2.5 KB  |  127 lines

  1. package sun.awt.macos;
  2.  
  3. import java.awt.Dimension;
  4. import java.awt.Event;
  5. import java.awt.FontMetrics;
  6. import java.awt.List;
  7. import java.awt.peer.ListPeer;
  8.  
  9. class MListPeer extends MComponentPeer implements ListPeer, ActionComponent {
  10.    MListPeer(List var1) {
  11.       super(var1);
  12.    }
  13.  
  14.    native void create(MComponentPeer var1);
  15.  
  16.    void initialize() {
  17.       List var1 = (List)super.target;
  18.       int var2 = var1.countItems();
  19.  
  20.       for(int var3 = 0; var3 < var2; ++var3) {
  21.          this.addItem(var1.getItem(var3), -1);
  22.       }
  23.  
  24.       this.setMultipleSelections(var1.allowsMultipleSelections());
  25.       int var4 = var1.getVisibleIndex();
  26.       if (var4 >= 0) {
  27.          this.makeVisible(var4);
  28.       }
  29.  
  30.       int[] var5 = var1.getSelectedIndexes();
  31.  
  32.       for(int var6 = 0; var6 < var5.length; ++var6) {
  33.          this.select(var5[var6]);
  34.       }
  35.  
  36.       super.initialize();
  37.    }
  38.  
  39.    public native void setMultipleSelections(boolean var1);
  40.  
  41.    public native boolean isSelected(int var1);
  42.  
  43.    public native void addItem(String var1, int var2);
  44.  
  45.    public native void delItems(int var1, int var2);
  46.  
  47.    public native void select(int var1);
  48.  
  49.    public native void deselect(int var1);
  50.  
  51.    public native void makeVisible(int var1);
  52.  
  53.    public void clear() {
  54.       List var1 = (List)super.target;
  55.       this.delItems(0, var1.countItems());
  56.    }
  57.  
  58.    public int[] getSelectedIndexes() {
  59.       List var1 = (List)super.target;
  60.       int var2 = var1.countItems();
  61.       int[] var3 = new int[var2];
  62.       int var4 = 0;
  63.  
  64.       for(int var5 = 0; var5 < var2; ++var5) {
  65.          if (this.isSelected(var5)) {
  66.             var3[var4++] = var5;
  67.          }
  68.       }
  69.  
  70.       int[] var6 = new int[var4];
  71.       System.arraycopy(var3, 0, var6, 0, var4);
  72.       return var6;
  73.    }
  74.  
  75.    public void action(int var1) {
  76.       List var2 = (List)super.target;
  77.       var2.select(var1);
  78.       super.target.postEvent(new Event(super.target, 1001, var2.getItem(var1)));
  79.    }
  80.  
  81.    public void action(boolean var1) {
  82.       System.err.println("Internal AWT error");
  83.    }
  84.  
  85.    public void action() {
  86.       System.err.println("Internal AWT error");
  87.    }
  88.  
  89.    public void handleAction(int var1) {
  90.       InterfaceThread.postInterfaceEvent(super.target, var1);
  91.    }
  92.  
  93.    public void handleListChanged(int var1) {
  94.       int[] var2 = ((List)super.target).getSelectedIndexes();
  95.       boolean var3 = false;
  96.  
  97.       for(int var4 = 0; var4 < var2.length; ++var4) {
  98.          if (var1 == var2[var4]) {
  99.             var3 = true;
  100.             break;
  101.          }
  102.       }
  103.  
  104.       if (var3) {
  105.          InterfaceThread.postInterfaceEvent(17, super.target, var1);
  106.       } else {
  107.          if (((List)super.target).allowsMultipleSelections()) {
  108.             InterfaceThread.postInterfaceEvent(18, super.target, var1);
  109.          }
  110.  
  111.       }
  112.    }
  113.  
  114.    public Dimension minimumSize() {
  115.       return this.minimumSize(4);
  116.    }
  117.  
  118.    public Dimension preferredSize(int var1) {
  119.       return this.minimumSize(var1);
  120.    }
  121.  
  122.    public Dimension minimumSize(int var1) {
  123.       FontMetrics var2 = ((MComponentPeer)this).getFontMetrics(super.target.getFont());
  124.       return new Dimension(20 + var2.stringWidth("0123456789abcde"), (var2.getHeight() + 2) * var1 + 11);
  125.    }
  126. }
  127.